/**
 * 给定排列，可以操作任意次：任选两个数i,j(1<=i,j<=N)，使得 Pi = Pi ^ j
 * 最后，for i in [2, n + 1]:
 *     令 Pi = Pi ^ P[i - 1]
 * 如此操作后，求最大的SIGMA{Pi}
 * 考虑到可以操作任意次，因此无论P1是多少，一定能够将其所有二进制位置1，然后将其余的Pi全变为零
 * 然后再用第二轮操作将其余的Pi变为P1。此时显然是能够达到的最大和值。
 */
#include <bits/stdc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using Real = long double;

int N;
vi P;

void work(){
    cin >> N;
    P.assign(N, {});
    for(auto & i : P) cin >> i;
    int k = 0;
    int n = N;
    while(n){
        k += 1;
        n >>= 1;
    }
    cout << ((1LL << k) - 1) * (N + 0LL) << endl;
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}
